package com.guigu.gulicommon.entity.pojo;

import com.guigu.gulicommon.constant.enumes.cart.IsCheck;
import com.guigu.gulicommon.constant.enumes.ware.HasStock;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

import java.math.BigDecimal;
import java.util.List;

/**
 * 购物项
 *
 * @author 陈俊杰
 * @version 1.0
 * @since 2024/9/21 11:41
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@AllArgsConstructor
@NoArgsConstructor
public class CartItem {
    /**
     * 商品skuId
     */
    private Long skuId;

    /**
     * 商品选中状态
     *
     * @see IsCheck#getName()
     */
    private IsCheck isCheck;
    /**
     * 商品标题
     */
    private String title;
    /**
     * 商品图片
     */
    private String image;
    /**
     * 商品套餐属性
     */
    private List<String> skuAttrs;
    /**
     * 数量
     */
    private Long count;
    /**
     * 商品价格
     */
    private BigDecimal price;
    /**
     * 商品总价
     */
    private BigDecimal totalPrice;

    /**
     * 库存状态
     *
     * @see HasStock#getName()
     */
    private HasStock hasStock;

    /**
     * 获取总价
     *
     * @return 总价
     */
    public BigDecimal getTotalPrice() {
        if (this.count == null || this.price == null) {
            return new BigDecimal(0);
        }

        return this.price.multiply(new BigDecimal("" + this.count));
    }


}
